web6047 2023年 12月


■ 月別 バックナンバー



■ AI との会話集

Google Bard との会話

OpenAI ChatGPT との会話



■ 2023年 12月 の日記

2023/12/30(土)

最近のプログラミング

RPG のプログラミングは、ほんの少しのあいだ休止して、今は、30年前にメジャーだったパソコンの PC-9801 の C 言語開発環境である「Borland Turbo C++ second(ver 1.02)」のためのユーティリティ・プログラム(LASM2MSG.EXE、LASM2TAS.EXE)を作成しています。


「Turbo C++」で、「Turbo C++」のためのユーティリティ・プログラムを作成している


以降のお話は、PC-9801Turbo C ++Turbo Assembler などの話が分かる人が好むような内容になっています。


「Turbo C++」「Turbo Assembler」の連携

「Turbo C++」は、別売の「Turbo Assembler」( C 言語よりももっと "ハードウェア寄り" の難しいプログラミング言語)とのあいだで、2 種類の方法で連携が出来るようになっています。

連携の 1 つは、.ASM ファイルを編集中にメニューから「Turbo Assembler」を選ぶか、または、プロジェクトの .ASM ファイルについて個別に「Turbo Assembler」で処理するように設定すれば、外部のプログラムである「Turbo Assembler」に処理(アセンブルして .OBJ ファイルを作成)させることができる、というものです。

(まだ試していませんが、ビルドなどを行えば、その .OBJ ファイルを実行ファイルに結合してくれるところまでやってくれるんじゃないかと思います)

このメニューで「Turbo Assembler」を選ぶと編集中の .ASM ファイルを渡せる。


そしてもう一つの連携は、C 言語の基本機能で C 言語のプログラムの途中に asm { ... } と書けば、アセンブリ言語を書くことができますが(インライン・アセンブラ)、そのアセンブリの部分について「Turbo Assembler」に処理させることができる、というものです。

(C 言語だけの状態では、インライン・アセンブラを処理できず、「Turbo Assembler」が別途必要)

(また、正確には、C 言語プログラム中にインライン・アセンブラがあるときは、C 言語プログラム全体をまるごとアセンブリ言語に変換して、そのアセンブリ全体を「Turbo Assembler」に渡す、、というような動きをしているようです)

インライン・アセンブラ部分は、「Turbo Assembler」で処理する

しかし、手に入らない「Turbo Assembler」

アセンブラはけっこう面白いのでぜひとも連携させたいのですが、オークションで手に入れようにも相場が 3 万円もして高価で、競争率も高く(競売がさかんで)なかなか手に入りません。

(「Turbo Assembler」単体ではなかなか出品されず、アセンブラとデバッガなどがセットになった「Borland C++」が時折出品され、それが相場 3 万円です)

代わりに LASM

しかたなく、あきらめて、代わりに「LASM」Light Macro Assemblerというアセンブラを「Turbo C++」と連携させようと考えました。

「LASM」なら現在正規販売中の製品であり、定価 16,800 円 で買いやすいし、フロッピーディスクではなく、ダウンロード販売なので、

『3万円で競り落としたのに、フロッピーディスクが損傷していて使えなかった orz 』

…という賭け事みたいな要素もなく、安全です。

(現在試用版を使っていて購入はまだしていません)

LASM を連携させる設定1

「Turbo C++」には、外部プログラムを起動するしくみ(連携の設定)があります。

連携は上述のように 2 種類あり、まず、「.ASMファイルを外部プログラムに渡す」ほうの連携設定については…

外部プログラムのメニューに「LASM」を設定した。
下図で黄色で示した、$CAP MSG(...) という単語のヘルプを見ると…
『外部プログラムのテキスト画面出力を「Turbo C++」画面へ流す「フィルタ」プログラムのソースコードがある』
と書かれている。

「LASM」用に独自にフィルタを作成してから、外部プログラムのメニューから「LASM」を選び、実行する。
すると、フィルタを経由して、「LASM」のテキスト画面出力を「Turbo C++」画面内に取り込むことができる。

ヘルプにあったとおりフィルタを自作(LASM2MSG.EXE を作成)して、外部プログラムである LASM の出力が画面に現れたときは、ひとつの大きな道が開けた感じがして嬉しかったです。

LASM を連携させる設定2

そして、もうひとつの連携、「インライン・アセンブラについて外部のアセンブラに処理させる」という連携設定については…

…しかし連携設定と言うよりは…

「Turbo C++」はインライン・アセンブラを見つけると、かならず「TASM」という名前で外部プログラム(「TASM」=「Turbo Assembler」)を呼ぶらしく、これの変更が残念ながらできません。

つまり基本的にはインライン・アセンブラは「Turbo Assembler」(TASM.EXE)以外のアセンブラで処理させることはできないみたいです。


でも、『もしや』と思って「TASM.BAT」というテキストファイルを作って設置したら、うまいこと .BAT が起動したので、「Turbo Assembler」(TASM.EXE)に代わるような内容を「TASM.BAT」の中に書けばいい、ということになりました。

TASM.BAT に TASM.EXE の代わりをさせる。具体的には、
 lasm hello.asm | lasm2tas
のように | を使って「パイプ」することで…
「LASM」のテキスト画面出力を自作の lasm2tas.exe に渡す。
lasm2tas.exe はそれを「Turbo Assembler」の出力テキストに変換して出力する。そして「Turbo C++」はそれを読み取るので画面に表示される(開発中)


そんなかんじで、「LASM」でも同じ動作ができるみたいなので、中古で高価な「Borland C++」は買わなくても済みそうです。

そんなことをこの2,3日やっています。


補足:宇宙の広がり?

最近 Twitter で、「PC-9801 の中には Windows にはない宇宙が広がっている…」とか「それではまた1年後」みたいな謎のメッセージを私は吐いていましたが、それは上記の外部プログラムのテキスト画面出力を「Turbo C++」の画面中に表示させることができたときの『大きな喜び』によるものでした。

でも見たのは 3名様か。しかも画面に表示はされたけど読まれてさえいないかもしれない。。。

今読み返してみると、「超」謎だな。。。

分かる人には分かるかもしれないけど、分からない人にはさっぱり意味わかんないだろう。。。


補足:PC-98 用ソフトウェアを Windows 上で動かす

Q. 今回のこの記事は PC-9801 という昔のパソコンについての話題ですが、記事の中で使っているパソコンは「PC-9801 本体」ではなく、「Neko Project II」というアプリになっています。これはどういうことなのか説明します。

以上は、「レトロPC」という趣味の世界でして、私が「宇宙が広がっている」と言ったように、とても楽しいものです。


ガーデニング棚 その2

私の兄弟の子供(甥、姪)へのお年玉は現金書留で送ることにしました。

仕事が大変で疲れていて、しかも今回の年末年始は 6日しかないので、実家に帰ると忙しくなりそうだからです。

「それを理由に今年はおじさんが実家に来ないから、お年玉は減額」

…というのは子供にはちょっと考え難いことだと思うので、わざわざでも現金書留で送ることにしています。


その郵便局の帰りに花屋でパンジーを3株買いました。

正確にはビオラという花も含まれていますが、どっちも似たようなものなので、総称してパンジーです。


左のプランターにもパンジーを3株

文字通り、華(花)やかになりました。…かな?


2023/12/24(日)

ガーデニング棚

冬によく咲く花の「パンジー」を3株買いました。

しかし、私の住まいは日陰で、日当たりは朝の数分と、昼の30分くらいに限られています。

また、私はあまり外に出たくない人なので、水やりがなかなかスムーズにできないという問題があります。

これは、花にとっては良くありません。


せっかく買った花なので、そのまま枯らしても忍びないと思い、ガーデニングの棚を買いました。

Amazon「Langoat 折りたたみ式 3段プランターラック屋外屋内兼用 ¥4,599 (税込)」

窓をガラッと開けて水やりができる
パンジー3株をプランターに植え替えた

このポジションならば、朝と昼間の日当たりを両方ゲットでき、なおかつ、窓を開けて水やりをすることができるので、問題はすべて解決します。

棚の購入前にアパートの大家さん(賃貸仲介業者)に連絡して、設置の許可を得て、それで購入して設置したので、その点も安心です。


ところで、今日はクリスマスだったんですね。すっかり忘れていました。


2023/12/11(月)

甘くない象(ゾゥ)

ちょっと作ってみたんですが。。

ダンジョンを歩いていると…
昨日作った「サキュバス」に出くわしました。

あのね、クオリティってものがね。どうも低いんですわ。ですわ。ですわ。ですわ。 orz

いろいろなゲームソフトのクオリティってものが「伊達ではない」と痛感しました。しました。しました。しました。 orz

嗚呼、どないしょ。


上図の画像の動いているところ (MP4動画、18MB、3分)

今まで RPG のプログラムばかりを作ってきたので、こういう RPG の「肉付け」には疎い(うとい)んだな…。

肉付けについての経験を今から積むしか


2023/12/10(日)

RPG モンスター「サキュバス」

Shade3D でモデリングして、動画出力したものです。

サキュバス (MP4動画、64KB、5秒)

サキュバスの画像(bing で画像検索) Wikipedia - サキュバス 


鳥の羽がリアルな動きをしています。鳥の羽は、

…という2点によってリアルに再現されています。

何も参考にしないでは、こういうのは作れないと思います。


また、女性らしさも結構重要です。

太ももが内側に寄っている
「カモシカのような足」=ヒザに対してスネが後ろへ寄っている


このモデルのポージングをもとにして、モンスターの 2D イラストを描こうと思っています。

製作中の RPG のモンスターとして使うつもりです。


製作中の RPG

今現在、製作中の RPG は、「ダンジョンのたいまつ表現」とか、細かいところをいろいろ作っているところです。


2023/12/1(金)

当ホームページ、新しいシステムで新登場。

このホームページの「サーバー側の処理プログラム」を新たに作り直します。

今月(2023年12月)以降のみこの新システムに対応しており、それよりも前は従来のシステムのままです。


新しくスマートホンを買い、自分のホームページを見たところ、だいぶひどい表示だったので「スマートホンでの表示にも対応させないと…」と思いました。

その対応が「新システム」です。


ここはページの一番下です